home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-12-01 | 4.3 KB | 130 lines |
- 10 KEY OFF:SCREEN 100:CLS
- 20 DEFINT B-Z:DEFSNG A
- 30 REM ************** CREATE CLOCK'S NUMERALS AND SAVE IN ARRAYS *******
- 40 LOCATE 12,40:PRINT "1";
- 50 DIM A1%(40):GET (312,187)-(320,177),A1%
- 60 LOCATE 12,40:PRINT "2";
- 70 DIM A2%(40):GET (312,187)-(320,177),A2%
- 80 LOCATE 12,40:PRINT "3"
- 90 DIM A3%(40):GET (312,187)-(320,177),A3%
- 100 LOCATE 12,40:PRINT "4"
- 110 DIM A4%(40):GET (312,187)-(320,177),A4%
- 120 LOCATE 12,40:PRINT "5"
- 130 DIM A5%(40):GET (312,187)-(320,177),A5%
- 140 LOCATE 12,40:PRINT "6"
- 150 DIM A6%(40):GET (312,187)-(320,177),A6%
- 160 LOCATE 12,40:PRINT "7"
- 170 DIM A7%(40):GET (312,187)-(320,177),A7%
- 180 LOCATE 12,40:PRINT "8"
- 190 DIM A8%(40):GET (312,187)-(320,177),A8%
- 200 LOCATE 12,40:PRINT "9"
- 210 DIM A9%(40):GET (312,187)-(320,177),A9%
- 220 LOCATE 12,40:PRINT "10"
- 230 DIM A10%(60):GET (312,187)-(328,177),A10%
- 240 LOCATE 12,40:PRINT "11"
- 250 DIM A11%(60):GET (312,187)-(328,177),A11%
- 260 LOCATE 12,40:PRINT "12"
- 270 DIM A12%(60):GET (312,187)-(328,177),A12%
- 280 REM ****************** INITIALIZE ALARM SETTING ********************
- 290 IF ALRM$="" THEN ALRM$="XX:XX"
- 300 REM ****************** SET THE SCREEN MODE AND COLOR ***************
- 310 SCREEN 100:CLS:COLOR 10
- 320 REM ****************** DRAW THE CLOCK FACE *************************
- 330 CIRCLE (320,160),200
- 340 CIRCLE (320,160),150
- 350 PAINT (320,8),3
- 360 REM ****************** PUT TICK MARKS ON THE CLOCK FACE ************
- 370 FOR I=0 TO 360 STEP 30:DRAW "bm320,160c0ta=i;u130":NEXT I
- 380 FOR I=0 TO 360 STEP 6:DRAW "bm320,160c0ta=i;u125":NEXT I
- 390 REM ****************** PUT THE NUMBERS ON THE CLOCK FACE ***********
- 400 PUT (311,16),A12%
- 410 PUT (225,33),A11%
- 420 PUT (405,35),A1%
- 430 PUT (158,84),A10%
- 440 PUT (470,84),A2%
- 450 PUT (138,155),A9%
- 460 PUT (490,155),A3%
- 470 PUT (162,225),A8%
- 480 PUT (470,225),A4%
- 490 PUT (225,280),A7%
- 500 PUT (405,280),A5%
- 510 PUT (316,300),A6%
- 520 REM ****************** RESET KEY TRAPS *****************************
- 530 FOR I=1 TO 10:KEY(I) OFF:NEXT I
- 540 REM ****************** PRINT TEXT **********************************
- 550 LOCATE 1,72:PRINT "AT&T";
- 560 LOCATE 2,68:PRINT "TECHNOLOGIES";
- 570 LOCATE 3,72:PRINT "INC.";
- 580 LOCATE 23,1:PRINT STRING$(80,61);
- 590 LOCATE 24,1:PRINT "F1=Set Time F2=Set Alarm F9=Exit to Basic F10=Exit to DOS";
- 600 LOCATE 25,1:PRINT STRING$(80,61);
- 610 IF ALRM$="XX:XX" GOTO 650
- 620 LOCATE 1,1:PRINT "ALARM IS SET";
- 630 LOCATE 2,1:PRINT " ";ALRM$;
- 640 GOTO 670
- 650 LOCATE 1,1:PRINT "ALARM IS OFF";
- 660 REM ****************** SET UP KEY TRAPS ****************************
- 670 KEY(1) ON:KEY(2) ON:KEY(9) ON:KEY(10) ON
- 680 ON KEY(1) GOSUB 1070:ON KEY(2) GOSUB 1140
- 690 ON KEY(9) GOSUB 1200:ON KEY(10) GOSUB 1210
- 700 REM ****************** INITIALIZE SOME VARIABLES *******************
- 710 REM ****************** FIRST TIME THRU LOOP FLAG *******************
- 720 FIRSTLOOP$="Y"
- 730 CH=0:CM=0:CS=0
- 740 REM ****************** THIS IS A FOREVER LOOP **********************
- 750 PH=CH:PM=CM:PS=CS
- 760 T$=TIME$
- 770 IF ALRM$="XX:XX" THEN GOTO 790
- 780 IF MID$(ALRM$,1,5)=MID$(T$,1,5) THEN GOSUB 1220
- 790 LOCATE 18,1:PRINT "TIME: ";T$;
- 800 LOCATE 18,65:PRINT "DATE: ";DATE$;
- 810 REM ******* VARIABLE DEFINITIONS
- 820 REM ******* PS = PREVIOUS SECOND, CS = CURRENT SECOND
- 830 REM ******* PM = PREVIOUS MINUTE, CM = CURRENT MINUTE
- 840 REM ******* PH = PREVIOUS HOUR, CH = CURRENT HOUR
- 850 REM ******* APS = ANGLE OF PREV SEC., ACS = ANGLE OF CURRENT SECOND
- 860 REM ******* APM = ANGLE OF PREV MIN., ACM = ANGLE OF CURRENT MINUTE
- 870 REM ******* APH = ANGLE OF PREV HOUR, ACH = ANGLE OF CURRENT HOUR
- 880 CS=VAL(MID$(T$,7,2)):APS=(-PS*6):ACS=(-CS*6)
- 890 DRAW "bm320,160c0ta=aps;u118"
- 900 DRAW "bm320,160c3ta=acs;u118"
- 910 CM=VAL(MID$(T$,4,2))
- 920 IF CM=PM AND APS<>ACM AND FIRSTLOOP$<>"Y" THEN GOTO 960
- 930 APM=(-PM*6):ACM=(-CM*6)
- 940 DRAW "bm320,160c0ta=apm;u100"
- 950 DRAW "bm320,160c3ta=acm;u100"
- 960 CH=VAL(MID$(T$,1,2))
- 970 IF CH>=12 THEN CH=CH-12
- 980 IF CM=PM AND ABS(APM-ACH)>=3 AND ABS(APS-ACH)>=3 AND FIRSTLOOP$<>"Y" THEN GOTO 1020
- 990 APH=(-PH*30)+(-PM*0.5):ACH=(-CH*30)+(-CM*0.5)
- 1000 DRAW "bm320,160c0ta=aph;u70"
- 1010 DRAW "bm320,160c3ta=ach;u70"
- 1020 FOR I=1 TO 10:CIRCLE (320,160),I:NEXT I
- 1030 FIRSTLOOP$="N"
- 1040 IF T$=TIME$ THEN GOTO 1040
- 1050 GOTO 740
- 1060 ************** THIS IS THE END OF THE FOREVER LOOP *****************
- 1070 CLS:LOCATE 5,5:PRINT "THE TIME IS NOW: ";T$
- 1080 LOCATE 7,5:INPUT "ENTER NEW TIME (IF NEEDED): ";T$
- 1090 IF T$<>"" THEN TIME$=T$
- 1100 CLS:LOCATE 5,5:PRINT "THE DATE IS: ";DATE$
- 1110 LOCATE 7,5:INPUT "ENTER NEW DATE (IF NEEDED): ";T$
- 1120 IF T$<>"" THEN DATE$=T$
- 1130 T$="00:00:00":RETURN 310
- 1140 CLS
- 1150 LOCATE 5,5:PRINT "ALARM NOW SET FOR: ";ALRM$
- 1160 LOCATE 7,5:INPUT "ENTER NEW SETTING IF NEEDED (0 TO TURN OFF)";T$
- 1170 IF T$="" THEN RETURN 310
- 1180 IF T$="0" THEN ALRM$="XX:XX" ELSE ALRM$=T$
- 1190 T$="00:00:00":RETURN 310
- 1200 CLS:SCREEN 0:KEY ON:END
- 1210 SYSTEM
- 1220 CLS:SCREEN 1,0:LOCATE 5,9:PRINT "* * * ALARM * * *"
- 1230 LOCATE 9,5:PRINT "PRESS ANY KEY TO STOP ALARM"
- 1240 ALRM$="XX:XX"
- 1250 T$=INKEY$
- 1260 IF T$<>"" THEN GOTO 1290
- 1270 BEEP:BEEP:BEEP
- 1280 GOTO 1250
- 1290 T$="00:00:00":RETURN 310
-